package com.glacier.yuyuan.modules.admin.sys.mapper;

import com.glacier.yuyuan.modules.admin.sys.domain.UserRole;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * date 2023-01-07 17:32
 * 用户角色 mapper
 *
 * @author glacier
 * @version 1.0.0
 */
public interface UserRoleMapper<ID extends Serializable> {

    /**
     * 查询数据列表
     *
     * @param roleId
     * @return
     */
    List<String> findListByRoleId(@Param("roleId") ID roleId);

    /**
     * 查询数据列表
     *
     * @param userId
     * @return
     */
    List<String> findListByUserId(@Param("userId") ID userId);

    /**
     * 插入数据
     *
     * @param entity
     * @return
     */
    int insert(UserRole entity);

    /**
     * 插入数据
     *
     * @param entitys
     * @return
     */
    int batchInsert(@Param("entitys") Collection<UserRole> entitys);

    /**
     * 根据角色id 删除
     *
     * @param roleId
     * @return
     */
    int deleteByRoleId(@Param("roleId") ID roleId);

    /**
     * 根据角色id 删除
     *
     * @param idList
     * @return
     */
    int deleteByRoleIds(@Param("idList") List<ID> idList);


    /**
     * 根据用户id 删除
     *
     * @param userId
     * @return
     */
    int deleteByUserId(@Param("userId") ID userId);

    /**
     * 根据用户id 删除
     *
     * @param idList
     * @return
     */
    int deleteByUserIds(@Param("idList") List<ID> idList);
}
